package com.bbva.kyfb.kyfbofi.converters;

import java.math.BigDecimal;

import org.springframework.beans.factory.annotation.Autowired;

import com.bbva.jee.arq.spring.core.contexto.ArqSpringContext;
import com.bbva.jee.arq.spring.core.gce.ExcepcionEjecucionAplicacion;
import com.bbva.kyfb.kyfbdto.firmas.bo.ConsultaEmpresaAsociadasNifDto;
import com.bbva.kyfb.kyfbdto.firmas.bo.ConsultaEmpresaAsociadasRefDto;
import com.bbva.kyfb.kyfbdto.firmas.bo.FicheroInfo;
import com.bbva.kyfb.kyfbdto.firmas.bo.FicheroPdteFirma;
import com.bbva.kyfb.kyfbdto.firmas.bo.OrdenMifidInDto;
import com.bbva.kyfb.kyfbdto.firmas.errores.Errores_kyfb_servicios;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ApoderadoEmpresasFirmInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultaAptitudMifidInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultaDatosClienteInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultarFirmatesFicheroInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.DatosClienteDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.EmpresasFirmInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicherosPendienteEmpresaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicherosPendientePorEmpresaNifInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.OrdenPendienteFirmaRefNifInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.OrdenPendienteFirmaReferenciaExternaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.UsuariosFirmantesOrdenInDto;
import com.bbva.kyfb.kyfbofi.objects.Producto;
import com.bbva.kyfb.kyfbutils.constantes.ConstantesFO;

/**
 * The Class DtoBoifToDtoConverter.
 */
public final class DtoBoifToDtoConverter {

    /**
     * Instantiates a new dto boif to dto converter.
     */
    private DtoBoifToDtoConverter() {
        //Evitamos instanciar
    }

    /**
     * Apoderado empresas dto to consulta empresa asociadas nif dto.
     *
     * @param consultaEmpresaAsociadasNifDto the consulta empresa asociadas nif dto
     * @return the apoderado empresas firm in dto
     */
    public static ApoderadoEmpresasFirmInDto apoderadoEmpresasDtoToConsultaEmpresaAsociadasNifDto(final ConsultaEmpresaAsociadasNifDto consultaEmpresaAsociadasNifDto) {
        ApoderadoEmpresasFirmInDto apoderadoEmpresasFirmInDto = new ApoderadoEmpresasFirmInDto();
        apoderadoEmpresasFirmInDto.setCanal(Integer.parseInt(consultaEmpresaAsociadasNifDto.getCanal()));
        apoderadoEmpresasFirmInDto.setReferenciaExterna(consultaEmpresaAsociadasNifDto.getReferencia());
        apoderadoEmpresasFirmInDto.setHuecoUno(ConstantesFO.VACIO);
        apoderadoEmpresasFirmInDto.setVersionSstt(ConstantesFO.VERSIONSSTT);
        apoderadoEmpresasFirmInDto.setHuecoDos(ConstantesFO.VACIO);
        apoderadoEmpresasFirmInDto.setTipoFirma(ConstantesFO.FIRMA_HOST); // TODO:
                                                                // Seguro de
                                                                // este
                                                                // campo?
                                                                // Properties
        apoderadoEmpresasFirmInDto.setTipoAccion("L");
        apoderadoEmpresasFirmInDto.setFormatoAsunto(ConstantesFO.FORMATO_ASUNTO);
        try {
        	apoderadoEmpresasFirmInDto.setBancSolici(Integer.parseInt(consultaEmpresaAsociadasNifDto.getBanco()));
        } catch (NullPointerException e) {
        	throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.CAMPO_OBLIGATORIO_NO_INFORMADO, e);
		}
        apoderadoEmpresasFirmInDto.setCdnitrSolici(consultaEmpresaAsociadasNifDto.getDni());
        apoderadoEmpresasFirmInDto.setHuecoTres(ConstantesFO.VACIO);

        return apoderadoEmpresasFirmInDto;

    }

    /**
     * Apoderado empresas dto to consulta empresa asociadas ref dto.
     *
     * @param consultaEmpresaAsociadasRefDto the consulta empresa asociadas ref dto
     * @return the empresas firm in dto
     */
    public static EmpresasFirmInDto apoderadoEmpresasDtoToConsultaEmpresaAsociadasRefDto(final ConsultaEmpresaAsociadasRefDto consultaEmpresaAsociadasRefDto) {

        EmpresasFirmInDto empresasFirmInDto = new EmpresasFirmInDto();
        
        empresasFirmInDto.setCanal(Integer.parseInt(consultaEmpresaAsociadasRefDto.getCanal()));
        empresasFirmInDto.setReferenciaExterna(consultaEmpresaAsociadasRefDto.getReferencia());
        empresasFirmInDto.setHuecoUno(ConstantesFO.VACIO);
        empresasFirmInDto.setVersionSstt(ConstantesFO.VERSIONSSTT);
        empresasFirmInDto.setHuecoDos(ConstantesFO.VACIO);
        empresasFirmInDto.setTipoFirma(ConstantesFO.FIRMA_HOST); // TODO: Seguro de este
                                                        // campo? Properties
        empresasFirmInDto.setTipoAccion("K");
        empresasFirmInDto.setFormatoAsunto(ConstantesFO.FORMATO_ASUNTO);
        try {
        	empresasFirmInDto.setBancSolici(Integer.parseInt(consultaEmpresaAsociadasRefDto.getBanco()));
        } catch (NullPointerException e) {
        	throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.CAMPO_OBLIGATORIO_NO_INFORMADO, e);
		}
        empresasFirmInDto.setCanalSolici(Integer.parseInt(consultaEmpresaAsociadasRefDto.getCanal())); //TODO: Este 23 de donde lo sacamos?
        empresasFirmInDto.setRefeExtSolici(consultaEmpresaAsociadasRefDto.getReferencia());
        empresasFirmInDto.setHuecoTres(ConstantesFO.VACIO);

        return empresasFirmInDto;
    }

    /**
     * Fichero info to consultar firmates fichero in dto.
     *
     * @param ficheroInfo the fichero info
     * @param ficheroPendienteFirma the fichero pendiente firma
     * @return the consultar firmates fichero in dto
     */
    public static ConsultarFirmatesFicheroInDto ficheroInfoToConsultarFirmatesFicheroInDto(final FicheroInfo ficheroInfo, final FicheroPdteFirma ficheroPendienteFirma) {

        ConsultarFirmatesFicheroInDto consultarFirmatesFicheroInDto = new ConsultarFirmatesFicheroInDto();
        try {
        	consultarFirmatesFicheroInDto.setBancsbSolici(Integer.parseInt(ArqSpringContext.getContextoEscritorio().getPerfil().getBancoFisico()));
        } catch (NullPointerException e) {
        	throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.CAMPO_OBLIGATORIO_NO_INFORMADO, e);
		}
        consultarFirmatesFicheroInDto.setCanalSstt(Integer.parseInt(ficheroInfo.getCodCanal()));
        consultarFirmatesFicheroInDto.setComrefex(ConstantesFO.FIRMA_HOST);
        consultarFirmatesFicheroInDto.setFormatoAsunto(ConstantesFO.FORMATO_ASUNTO);
        consultarFirmatesFicheroInDto.setHueco1(ConstantesFO.VACIO);
        consultarFirmatesFicheroInDto.setHueco2(ConstantesFO.VACIO);
        consultarFirmatesFicheroInDto.setHueco3(ConstantesFO.VACIO);
        consultarFirmatesFicheroInDto.setRefeexte(ficheroInfo.getCodClienteCash().substring(8, 16));
        consultarFirmatesFicheroInDto.setTimestampSolic(ficheroPendienteFirma.getdFechaCreacion().toString());
        consultarFirmatesFicheroInDto.setTipoAccion("Q");
        consultarFirmatesFicheroInDto.setVersionSstt(ConstantesFO.VERSIONSSTT);

        return consultarFirmatesFicheroInDto;
    }

    /**
     * Fichero info to usuarios firmantes orden in dto.
     *
     * @param ficheroInfo the fichero info
     * @param ficheroPendienteFirma the fichero pendiente firma
     * @return the usuarios firmantes orden in dto
     */
    public static UsuariosFirmantesOrdenInDto ficheroInfoToUsuariosFirmantesOrdenInDto(final FicheroInfo ficheroInfo, final FicheroPdteFirma ficheroPendienteFirma) {

        UsuariosFirmantesOrdenInDto usuariosFirmantesOrdenInDto = new UsuariosFirmantesOrdenInDto();
        try {
        	usuariosFirmantesOrdenInDto.setBancsbEntr(Integer.parseInt(ArqSpringContext.getContextoEscritorio().getPerfil().getBancoFisico()));
        } catch (NullPointerException e) {
        	throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.CAMPO_OBLIGATORIO_NO_INFORMADO, e);
		}
        usuariosFirmantesOrdenInDto.setCanalEntr(Integer.parseInt(ficheroInfo.getCodCanal()));
        usuariosFirmantesOrdenInDto.setRefeexteEntr(ficheroInfo.getCodClienteCash());
        usuariosFirmantesOrdenInDto.setTimestampEntr(ficheroPendienteFirma.getdFechaCreacion().toString());

        return usuariosFirmantesOrdenInDto;
    }

    /**
     * Fichero info to orden pendiente firma referencia externa in dto.
     *
     * @param ficheroInfo the fichero info
     * @return the orden pendiente firma referencia externa in dto
     */
    public static OrdenPendienteFirmaReferenciaExternaInDto ficheroInfoToOrdenPendienteFirmaReferenciaExternaInDto(final FicheroInfo ficheroInfo) {

        OrdenPendienteFirmaReferenciaExternaInDto ordenPendienteFirmaReferenciaExternaInDto = new OrdenPendienteFirmaReferenciaExternaInDto();
        try {
        	ordenPendienteFirmaReferenciaExternaInDto.setBancsbEntr(Integer.parseInt(ArqSpringContext.getContextoEscritorio().getPerfil().getBancoFisico()));
        } catch (NullPointerException e) {
        	throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.CAMPO_OBLIGATORIO_NO_INFORMADO, e);
		}
        ordenPendienteFirmaReferenciaExternaInDto.setCanalEntr(Integer.parseInt(ficheroInfo.getCodCanal()));

        if (ficheroInfo.getsFechaDesde() == null) {
            ordenPendienteFirmaReferenciaExternaInDto.setFecdesEntr(ConstantesFO.FECHA_DESDE_DEFECTO.getTime());
        } else {
            ordenPendienteFirmaReferenciaExternaInDto.setFecdesEntr(ficheroInfo.getsFechaDesde());
        }

        if (ficheroInfo.getsFechaHasta() == null) {
            ordenPendienteFirmaReferenciaExternaInDto.setFechasEntr(ConstantesFO.FECHA_HASTA_DEFECTO.getTime());
        } else {
            ordenPendienteFirmaReferenciaExternaInDto.setFechasEntr(ficheroInfo.getsFechaHasta());
        }

        if (ficheroInfo.getsImporteDesde() == null) {
            ordenPendienteFirmaReferenciaExternaInDto.setImpdesEntr(ConstantesFO.IMPORTE_DESDE_DEFECTO);
        } else {
            ordenPendienteFirmaReferenciaExternaInDto.setImpdesEntr(new BigDecimal(ficheroInfo.getsImporteDesde()));
        }

        if (ficheroInfo.getsImporteHasta() == null) {
            ordenPendienteFirmaReferenciaExternaInDto.setImphasEntr(ConstantesFO.IMPORTE_HASTA_DEFECTO);
        } else {
            ordenPendienteFirmaReferenciaExternaInDto.setImphasEntr(new BigDecimal(ficheroInfo.getsImporteHasta()));
        }

        ordenPendienteFirmaReferenciaExternaInDto.setRefeexteEntr(ficheroInfo.getsReferencia());
        ordenPendienteFirmaReferenciaExternaInDto.setTipserEntr(ConstantesFO.TODO);

        return ordenPendienteFirmaReferenciaExternaInDto;
    }

    /**
     * Fichero info to ficheros pendiente empresa in dto.
     *
     * @param ficheroInfo the fichero info
     * @return the ficheros pendiente empresa in dto
     */
    public static FicherosPendienteEmpresaInDto ficheroInfoToFicherosPendienteEmpresaInDto(final FicheroInfo ficheroInfo) {

        FicherosPendienteEmpresaInDto ficherosPendienteEmpresaInDto = new FicherosPendienteEmpresaInDto();
        try {
        	ficherosPendienteEmpresaInDto.setBancsbSolici(Integer.parseInt(ArqSpringContext.getContextoEscritorio().getPerfil().getBancoFisico()));
        } catch (NullPointerException e) {
        	throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.CAMPO_OBLIGATORIO_NO_INFORMADO, e);
		}
        ficherosPendienteEmpresaInDto.setCanalSstt(Integer.parseInt(ficheroInfo.getCodCanal()));
        ficherosPendienteEmpresaInDto.setCanalSolici(Integer.parseInt(ficheroInfo.getCodCanal()));
        ficherosPendienteEmpresaInDto.setCclienSolici(Integer.parseInt(ficheroInfo.getsNifDni2()));
        ficherosPendienteEmpresaInDto.setCdnitrSolici(ficheroInfo.getsNifDni());
        ficherosPendienteEmpresaInDto.setComrefex(ConstantesFO.FIRMA_HOST);
 
        if (ficheroInfo.getsFechaDesde() == null) {
            ficherosPendienteEmpresaInDto.setFecdesSolici(ConstantesFO.FECHA_DESDE_DEFECTO.getTime());
        } else {
            ficherosPendienteEmpresaInDto.setFecdesSolici(ficheroInfo.getsFechaDesde());
        }
        
        if (ficheroInfo.getsFechaHasta() == null) {
            ficherosPendienteEmpresaInDto.setFechasSolici(ConstantesFO.FECHA_HASTA_DEFECTO.getTime());
        } else {
            ficherosPendienteEmpresaInDto.setFechasSolici(ficheroInfo.getsFechaHasta());
        }

        ficherosPendienteEmpresaInDto.setFormatoAsunto(ConstantesFO.FORMATO_ASUNTO);
        ficherosPendienteEmpresaInDto.setHueco1(ConstantesFO.VACIO);
        ficherosPendienteEmpresaInDto.setHueco2(ConstantesFO.VACIO);
        ficherosPendienteEmpresaInDto.setHueco3(ConstantesFO.VACIO);

        if (ficheroInfo.getsImporteDesde() == null) {
            ficherosPendienteEmpresaInDto.setImpdesSolici(ConstantesFO.IMPORTE_DESDE_DEFECTO);
        } else {
            ficherosPendienteEmpresaInDto.setImpdesSolici(new BigDecimal(ficheroInfo.getsImporteDesde()));
        }

        if (ficheroInfo.getsImporteHasta() == null) {
            ficherosPendienteEmpresaInDto.setImphasSolici(ConstantesFO.IMPORTE_HASTA_DEFECTO_2);
        } else {
            ficherosPendienteEmpresaInDto.setImphasSolici(new BigDecimal(ficheroInfo.getsImporteHasta()));
        }

        ficherosPendienteEmpresaInDto.setRefeexte(ficheroInfo.getsReferencia());  //Antes se pasaba ficheroInfo.getCodClienteCash()
        ficherosPendienteEmpresaInDto.setRefeexteSolici(ficheroInfo.getsReferencia()); //Antes se pasaba ficheroInfo.getCodClienteCash()
        ficherosPendienteEmpresaInDto.setTipoAccion(ConstantesFO.TIPO_ACCION_CONSULTA);
        ficherosPendienteEmpresaInDto.setTipserSolici(ConstantesFO.TODO);
        ficherosPendienteEmpresaInDto.setVersionSstt(ConstantesFO.VERSIONSSTT);


        return ficherosPendienteEmpresaInDto;
    }

    /**
     * Fichero info to orden pendiente firma ref nif in dto.
     *
     * @param ficheroInfo the fichero info
     * @return the orden pendiente firma ref nif in dto
     */
    public static OrdenPendienteFirmaRefNifInDto ficheroInfoToOrdenPendienteFirmaRefNifInDto(final FicheroInfo ficheroInfo) {
        OrdenPendienteFirmaRefNifInDto ordenPendienteIn = new OrdenPendienteFirmaRefNifInDto();
        try {
        	ordenPendienteIn.setCodBancsbEntr(Integer.parseInt(ArqSpringContext.getContextoEscritorio().getPerfil().getBancoFisico()));
        } catch (NullPointerException e) {
        	throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.CAMPO_OBLIGATORIO_NO_INFORMADO, e);
		}
        ordenPendienteIn.setCodCanalEntr(Integer.parseInt(ficheroInfo.getCodCanal()));
        ordenPendienteIn.setCodNifapoEntr(ficheroInfo.getsNifDni());
        ordenPendienteIn.setCodRefextEntr(ficheroInfo.getCodClienteCash().substring(8, 16));
        ordenPendienteIn.setCodTipserEntr(ConstantesFO.TODO);

        if (ficheroInfo.getsFechaDesde() == null) {
            ordenPendienteIn.setFecFecdesEntr(ConstantesFO.FECHA_DESDE_DEFECTO.getTime());
        } else {
            ordenPendienteIn.setFecFecdesEntr(ficheroInfo.getsFechaDesde());
        }
        if (ficheroInfo.getsFechaHasta() == null) {
            ordenPendienteIn.setFecFechasEntr(ConstantesFO.FECHA_HASTA_DEFECTO.getTime());
        } else {
            ordenPendienteIn.setFecFechasEntr(ficheroInfo.getsFechaHasta());
        }

        ordenPendienteIn.setFiller(ConstantesFO.VACIO);

        if (ficheroInfo.getsImporteDesde() == null) {
            ordenPendienteIn.setImpImpdesEntr(ConstantesFO.IMPORTE_DESDE_DEFECTO);
        } else {
            ordenPendienteIn.setImpImpdesEntr(new BigDecimal(ficheroInfo.getsImporteDesde()));
        }

        if (ficheroInfo.getsImporteHasta() == null) {
            ordenPendienteIn.setImpImphasEntr(ConstantesFO.IMPORTE_HASTA_DEFECTO);
        } else {
            ordenPendienteIn.setImpImphasEntr(new BigDecimal(ficheroInfo.getsImporteHasta()));
        }

        return ordenPendienteIn;
    }

    /**
     * Fichero info to ficheros pendiente por empresa nif in dto.
     *
     * @param ficheroInfo the fichero info
     * @return the ficheros pendiente por empresa nif in dto
     */
    public static FicherosPendientePorEmpresaNifInDto ficheroInfoToFicherosPendientePorEmpresaNifInDto(final FicheroInfo ficheroInfo) {
        FicherosPendientePorEmpresaNifInDto ficheroPdtesEmpresa = new FicherosPendientePorEmpresaNifInDto();
        
        try {
        	ficheroPdtesEmpresa.setBancsbSolici(Integer.parseInt(ArqSpringContext.getContextoEscritorio().getPerfil().getBancoFisico()));
        } catch (NullPointerException e) {
        	throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.CAMPO_OBLIGATORIO_NO_INFORMADO, e);
		}
        ficheroPdtesEmpresa.setCanalSstt(Integer.parseInt(ficheroInfo.getCodClienteCash().substring(0, 4)));
        ficheroPdtesEmpresa.setCclienrSolici(Integer.parseInt(ficheroInfo.getsNifDni3()));
        ficheroPdtesEmpresa.setCclienSolici(Integer.parseInt(ficheroInfo.getsNifDni2()));
        ficheroPdtesEmpresa.setComrefex(ConstantesFO.FIRMA_HOST);
        ficheroPdtesEmpresa.setRefeexte(ficheroInfo.getCodClienteCash().substring(8, 16));
        ficheroPdtesEmpresa.setDniSolici(ficheroInfo.getsNifDni());

        if (ficheroInfo.getsFechaDesde() == null) {
            ficheroPdtesEmpresa.setFechaDesde(ConstantesFO.FECHA_DESDE_DEFECTO.getTime());
        } else {
            ficheroPdtesEmpresa.setFechaDesde(ficheroInfo.getsFechaDesde());
        }
        if (ficheroInfo.getsFechaHasta() == null) {
            ficheroPdtesEmpresa.setFechaHasta(ConstantesFO.FECHA_HASTA_DEFECTO.getTime());
        } else {
            ficheroPdtesEmpresa.setFechaHasta(ficheroInfo.getsFechaHasta());
        }

        ficheroPdtesEmpresa.setFormatoAsunto("0040");
        ficheroPdtesEmpresa.setHueco1(ConstantesFO.VACIO);
        ficheroPdtesEmpresa.setHueco2(ConstantesFO.VACIO);
        ficheroPdtesEmpresa.setHueco3(ConstantesFO.VACIO);

        if (ficheroInfo.getsImporteDesde() == null) {
            ficheroPdtesEmpresa.setImporteDesde(ConstantesFO.IMPORTE_DESDE_DEFECTO);
        } else {
            ficheroPdtesEmpresa.setImporteDesde(new BigDecimal(ficheroInfo.getsImporteDesde()));
        }

        if (ficheroInfo.getsImporteHasta() == null) {
            ficheroPdtesEmpresa.setImporteHasta(ConstantesFO.IMPORTE_HASTA_DEFECTO_2);
        } else {
            ficheroPdtesEmpresa.setImporteHasta(new BigDecimal(ficheroInfo.getsImporteHasta()));
        }

        ficheroPdtesEmpresa.setTipoAccion("U");
        ficheroPdtesEmpresa.setTipoServicio(ConstantesFO.TODO);
        ficheroPdtesEmpresa.setVersionSstt(ConstantesFO.VERSIONSSTT);

        return ficheroPdtesEmpresa;
    }
    
    /**
     * Orden mifid in dto to consulta datos cliente in dto.
     *
     * @param ordenMifidInDto the orden mifid in dto
     * @return the consulta datos cliente in dto
     */
    public static ConsultaDatosClienteInDto ordenMifidInDtoToConsultaDatosClienteInDto(final OrdenMifidInDto ordenMifidInDto) {
    	ConsultaDatosClienteInDto consultaDatosInDto = new ConsultaDatosClienteInDto();
		consultaDatosInDto.setCodBancsb(Integer.parseInt(ordenMifidInDto.getCodigoBanco()));
		consultaDatosInDto.setCodCanaldi(Integer.parseInt(ordenMifidInDto.getCodigoCanal()));
		consultaDatosInDto.setCodCcontr(0);
		consultaDatosInDto.setCodCdepen(0);
		consultaDatosInDto.setCodCfolio(0);
		consultaDatosInDto.setCodCofici(0);
		consultaDatosInDto.setCodRefeexte(ordenMifidInDto.getReferencia());
		consultaDatosInDto.setXtiTipocons("R");
		return consultaDatosInDto;
    }
    
    /**
     * Orden mifid in dto to consulta aptitud mifid in dto.
     *
     * @param ordenMifidInDto the orden mifid in dto
     * @param productoDto the producto dto
     * @param datosClienteDto the datos cliente dto
     * @return the consulta aptitud mifid in dto
     */
    public static ConsultaAptitudMifidInDto ordenMifidInDtoToConsultaAptitudMifidInDto(final OrdenMifidInDto ordenMifidInDto, final Producto productoDto, final DatosClienteDto datosClienteDto) {
		String familia = " ";
		String subfamilia = " ";
		String tipoVenta = " ";
		if (productoDto!=null) {
			familia = productoDto.getCodFamilia();
			subfamilia = productoDto.getCodSubfamilia().toString();
			tipoVenta = productoDto.getXtiVenta();
		}
		
	    ConsultaAptitudMifidInDto consultaAptitudMifidInDto = new ConsultaAptitudMifidInDto();
		consultaAptitudMifidInDto.setCodBancsb(Integer.parseInt(ordenMifidInDto.getCodigoBanco()));
		consultaAptitudMifidInDto.setCodCclien(datosClienteDto.getCodCclien());
		consultaAptitudMifidInDto.setCodFamilimf("");
		try {
			consultaAptitudMifidInDto.setCodPais(Integer.valueOf(ConstantesFO.CODIGO_APLICACION_TX_010));
		} catch (NullPointerException e) {
			throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.CAMPO_OBLIGATORIO_NO_INFORMADO, e);
		}
		consultaAptitudMifidInDto.setCodPromifid("");
		consultaAptitudMifidInDto.setCodRiesgopr("");
		consultaAptitudMifidInDto.setCodSubfammf(familia.concat(subfamilia)); // TODO
		// :
		// cambiar
		// en
		// DTO
	
		consultaAptitudMifidInDto.setXtiTipovent(tipoVenta);// TODO:
															// Cambiar
															// en DTO
		java.sql.Date dFecha = new java.sql.Date((new java.util.Date()).getTime());
		String fecha = dFecha.toString(); // TODO: Pasar a utils
		consultaAptitudMifidInDto.setFopOperacio(fecha);
		try {
			consultaAptitudMifidInDto.setCodIdioma(Integer.valueOf(ordenMifidInDto.getIdioma()));
		} catch (NullPointerException e) {
        	throw new ExcepcionEjecucionAplicacion(Errores_kyfb_servicios.CAMPO_OBLIGATORIO_NO_INFORMADO,e);
		}

		return consultaAptitudMifidInDto;
    }
}
